package cn.mw.cmdb.virtualization.dto;

import cn.mw.cmdb.virtualization.annotations.VirtualizationAlias;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * @description 虚拟化主机DTO
 */
@Getter
@Setter
@Schema(name = "VirtualizationHostDto", description = "虚拟化主机DTO")
public class VirtualizationHostDto extends VirtualizationBaseDto implements Serializable {

    private static final long serialVersionUID = 1L;

    @VirtualizationAlias(itemName = "",describe = "电源状态")
    private Integer powerStatus;

    //状态
    @VirtualizationAlias(itemName = "Overall status,MW_HOST_STATUS",describe = "状态")
    private String status;

    //总内存
    @VirtualizationAlias(itemName = "MWVM_MEMORY_TOTAL",describe = "总内存")
    private String totalMemory;

    //已用内存
    @VirtualizationAlias(itemName = "MWVM_MEMORY_USED",describe = "已用内存")
    private String usedMemory;

    //内存使用率
    @VirtualizationAlias(itemName = "MWVM_MEM_UTILIZATION",describe = "内存使用率")
    private String memoryUsageRate;

    //已用CPU
    @VirtualizationAlias(itemName = "MWVM_CPU_USAGE",describe = "已用CPU")
    private String usedCpu;

    //剩余CPU
    @VirtualizationAlias(itemName = "MWVM_CPU_FREQUENCY",describe = "剩余CPU")
    private String freeCpu;

    //CPU使用率
    @VirtualizationAlias(itemName = "MWVM_CPU_UTILIZATION",describe = "CPU使用率")
    private String cpuUsageRate;

    //厂商
    @VirtualizationAlias(itemName = "HOST_VENDOR",describe = "厂商")
    private String manufacturer;

    //型号
    @VirtualizationAlias(itemName = "HOST_MODEL",describe = "型号")
    private String model;

    //持续运行时间
    @VirtualizationAlias(itemName = "MWVM_UPTIME,HOST_UPTIME",describe = "持续运行时间")
    private String runTime;

    //总存储
    @VirtualizationAlias(itemName = "TOTAL_DATASTORE_SIZE,PARTTION_TOTAL",describe = "总存储")
    private String totalStore;

    //已用存储
    @VirtualizationAlias(itemName = "PARTTION_USED",describe = "已用存储")
    private String usedStore;

    /**
     * 虚拟化类型
     */
    private String type;
}
